SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TTAMAR_NCPR_D01]      
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : OFISIS S.A.                --*/      
/*---Sistema              : Tesoreria                  --*/      
/*---M¸dulo               : Empresa                    --*/      
/*---Programa             : Anulaci©n Aplicaci©n       --*/      
/*---                       Notas Credito con Facturas --*/      
/*---Script               : SP_TTAMAR_NCPR_D01.SQL     --*/      
/*---Nombre SP            : SP_TTAMAR_NCPR_D01         --*/      
/*---Desarrollado por     : Denis Villacr's P.         --*/      
/*---Fecha Creaci¸n       : 08/07/2000                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi¸n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     : Reynaldo Menacho L.        --*/      
/*---Fecha Modificaci¸n   : 28/11/2001                 --*/       
/*---Detalle Modificaci¸n : Liberar Letras (Doc's Destinos)--*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/      
/*---Modificado 2 por     : Carlos Marquez Escobar --*/    
/*---Fecha Modificaci¸n   : 22/04/2004                 --*/       
/*---Detalle Modificaci¸n : Llevar Una Bitacora de Docs--*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/    
/*---Modificado 3 por     : Maribel Julca Rodriguez    --*/    
/*---Fecha Modificaci©n   : 21/04/2005                 --*/     
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/    
/*-------------------------------------------------------*/    
  
/*-------------------------------------------------------*/      
/*---Comentarios                                       --*/      
/*---                                                  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TTAMAR_NCPR_D01                      --*/      
/*---Grant all on SP_TTAMAR_NCPR_D01 to public         --*/       
/*---SP_TTAMAR_NCPR_D01 '01', 'OFISIS', '00000002', '00000000003', '004'                            --*/      
/*-------------------------------------------------------*/      
 @ISCO_EMPR        TD_VC_002,       
 @ISCO_USUA_MODI   TD_VC_008,      
 @ISNU_AMAR        TD_VC_008,       
 @ISCO_TIPO_OPER   TD_VC_003,      
 @ISCO_UNID_CONC   TD_VC_003,      
 @IDFE_AMAR  TD_DT_001
	As
DECLARE @CSTI_DOCU_DEST  TD_VC_003,       
  @CSNU_DOCU_DEST  TD_VC_020,        
  @CNIM_PAGO_CDES  TD_NU_016_004,       
  @VNIM_TOTA_DOCU  TD_NU_016_004,       
  @CSCO_ENTI   TD_VC_020,       
  @CSTI_DOCU_ORIG  TD_VC_003,       
  @CSNU_DOCU_ORIG  TD_VC_020,       
  @CNIM_PAGO_CORI  TD_NU_016_004,        
  @VSCO_MONE       TD_VC_003,      
  @VSCO_MONE_DOCU  TD_VC_003,      
  @VNFA_TIPO_CAMB  TD_NU_015_006,      
  @VSCO_MONE_DEFA  TD_VC_003,      
  @VSCO_MONE_EXTR  TD_VC_003,      
  @OSTI_DOCU_LETR  TD_VC_003      
      
    
      
 BEGIN TRAN SP_TTAMAR_NCPA_D01      
      
 EXEC SP_TTDOCU_CNTB_Q02 6, @OSTI_DOCU_LETR OUTPUT       
     
 Select @VSCO_MONE = CO_MONE, @VNFA_TIPO_CAMB = FA_TIPO_CAMB      
 From   TCAMAR_NCPR      
 Where  CO_EMPR = @ISCO_EMPR       
 And    CO_UNID_CONC = @ISCO_UNID_CONC      
 And    NU_AMAR = @ISNU_AMAR      
 And    FE_AMAR = @IDFE_AMAR      
     
 Select @VSCO_MONE_DEFA = CO_MONE_DEFA,      
      @VSCO_MONE_EXTR = CO_MONE_EXTR      
 From   TMPARA_TESO      
 Where  CO_EMPR = @ISCO_EMPR      
     
 DECLARE CU_TTAMAR_NCPA_D01 CURSOR       
 FOR      
 SELECT CO_ENTI, CO_TIDO_DEST , NU_DOCU_DEST , Isnull (IM_PAGO_CDES , 0)      
 FROM   TDAMAR_NCPR      
 WHERE  CO_EMPR = @ISCO_EMPR       
 And    CO_UNID_CONC = @ISCO_UNID_CONC      
 And    NU_AMAR = @ISNU_AMAR      
 And    FE_AMAR = @IDFE_AMAR      
 AND    CO_TIDO_ORIG is NULL       
 AND    NU_DOCU_ORIG is NULL          
    
  /***  PRIMERO LIBERA DOCUMENTOS  DESTINOS  ***/         
 OPEN CU_TTAMAR_NCPA_D01      
 FETCH  CU_TTAMAR_NCPA_D01 INTO @CSCO_ENTI, @CSTI_DOCU_DEST , @CSNU_DOCU_DEST , @CNIM_PAGO_CDES      
      
 WHILE (@@FETCH_STATUS = 0)      
       BEGIN      
  IF (@@FETCH_STATUS < 0)      
   Begin      
   RAISERROR 20001 'FIN DE ARCHIVO'      
   Close CU_TTAMAR_NCPA_D01      
   DEALLOCATE CU_TTAMAR_NCPA_D01      
   Return                  
  End      
      
                
  If @CSTI_DOCU_DEST != @OSTI_DOCU_LETR      
   Update TMDOCU_PROV      
   Set IM_PAGA = Isnull(IM_PAGA,0) - @CNIM_PAGO_CDES , CO_ESTA_DOCU = 'ACT',      
   CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = GETDATE()      
   WHERE CO_EMPR = @ISCO_EMPR       
   AND CO_PROV = @CSCO_ENTI      
   AND CO_TIPO_DOCU = @CSTI_DOCU_DEST       
   AND NU_DOCU_PROV = @CSNU_DOCU_DEST      
  Else      
   Update TMLETR_PROV      
   Set IM_PAGA = Isnull(IM_PAGA,0) - @CNIM_PAGO_CDES , CO_ESTA_DOCU = 'ACE',      
   CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = GETDATE()      
   WHERE CO_EMPR = @ISCO_EMPR       
   AND CO_PROV = @CSCO_ENTI      
   AND NU_LETR_PROV = @CSNU_DOCU_DEST      
      
  If @@error <> 0      
  Begin      
   CLOSE CU_TTAMAR_NCPA_D01      
   DEALLOCATE CU_TTAMAR_NCPA_D01      
   rollback tran       
   return      
  End      
      
  FETCH  CU_TTAMAR_NCPA_D01 INTO @CSCO_ENTI, @CSTI_DOCU_DEST , @CSNU_DOCU_DEST , @CNIM_PAGO_CDES      
     END   ---- End Docs Destino    
 CLOSE CU_TTAMAR_NCPA_D01      
 DEALLOCATE CU_TTAMAR_NCPA_D01      
      
    
    
 /* ********* LIBERA DOCUMENTOS ORIGENES  ********** */        
 DECLARE CU_TTAMAR_NCPA_D01 CURSOR       
 FOR      
  SELECT CO_ENTI, CO_TIDO_ORIG , NU_DOCU_ORIG , IM_PAGO_CORI      
  FROM   TDAMAR_NCPR      
  WHERE  CO_EMPR = @ISCO_EMPR       
  And    CO_UNID_CONC = @ISCO_UNID_CONC      
  And    NU_AMAR = @ISNU_AMAR      
  And    FE_AMAR = @IDFE_AMAR      
  AND    CO_TIDO_DEST is NULL       
  AND    NU_DOCU_DEST is NULL          
     
 OPEN CU_TTAMAR_NCPA_D01      
 FETCH  CU_TTAMAR_NCPA_D01 INTO @CSCO_ENTI, @CSTI_DOCU_ORIG , @CSNU_DOCU_ORIG , @CNIM_PAGO_CORI      
     
 WHILE (@@FETCH_STATUS = 0)      
  BEGIN      
  IF (@@FETCH_STATUS < 0)      
   BEGIN      
    RAISERROR 20001 'FIN DE ARCHIVO'      
    CLOSE CU_TTAMAR_NCPA_D01      
    DEALLOCATE CU_TTAMAR_NCPA_D01      
    RETURN      
   END      
      
  Select @VSCO_MONE_DOCU = CO_MONE      
  From TMDOCU_PROV      
  Where CO_EMPR = @ISCO_EMPR       
  And   CO_PROV = @CSCO_ENTI      
  And   CO_TIPO_DOCU = @CSTI_DOCU_ORIG        
  And   NU_DOCU_PROV = @CSNU_DOCU_ORIG      
      
      
  UPDATE TMDOCU_PROV      
  Set IM_PAGA = Isnull(IM_PAGA,0) - @CNIM_PAGO_CORI , CO_ESTA_DOCU = 'ACT',      
  CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = GETDATE()      
  WHERE CO_EMPR = @ISCO_EMPR       
  AND   CO_PROV = @CSCO_ENTI      
  AND   CO_TIPO_DOCU = @CSTI_DOCU_ORIG       
  AND   NU_DOCU_PROV = @CSNU_DOCU_ORIG      
      
  If @@error <> 0      
  Begin      
   CLOSE CU_TTAMAR_NCPA_D01      
   DEALLOCATE CU_TTAMAR_NCPA_D01      
   rollback tran       
   return      
  End      
      
  FETCH  CU_TTAMAR_NCPA_D01 INTO @CSCO_ENTI, @CSTI_DOCU_ORIG , @CSNU_DOCU_ORIG , @CNIM_PAGO_CORI      
      
   END   ---Docs Origenes    
    
 CLOSE CU_TTAMAR_NCPA_D01      
 DEALLOCATE CU_TTAMAR_NCPA_D01      
      
      
 Insert into  TMREGI_ELIM (CO_EMPR, CO_TABL_ORIG, DE_TABL_ORIG,      
 CO_CLAV_TAOR, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI )      
 select @ISCO_EMPR, 87, 'DETALLE APLICACI.N NCR A DOCUMENTOS PROVEEDOR',      
 RTRIM( CO_EMPR )+ REPLICATE('#', 2-LEN(RTRIM(CO_EMPR))) +       
 RTRIM( NU_AMAR )+ REPLICATE('#', 8-LEN(RTRIM(NU_AMAR))) +      
 RTRIM( IsNull(CO_TIDO_ORIG, CO_TIDO_DEST) ) +     
  REPLICATE('#', 3-LEN(RTRIM(IsNull(CO_TIDO_ORIG, CO_TIDO_DEST) ) ) ) +    
 RTRIM( IsNull(NU_DOCU_ORIG, NU_DOCU_DEST) ) +    
  REPLICATE('#',20-LEN(RTRIM(IsNull(NU_DOCU_ORIG, NU_DOCU_DEST) ) ) ), @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE()    
 From  TDAMAR_NCPR    
 Where  CO_EMPR = @ISCO_EMPR       
 And    CO_UNID_CONC = @ISCO_UNID_CONC      
 And    NU_AMAR = @ISNU_AMAR      
 And    FE_AMAR = @IDFE_AMAR      
      
 If @@error <> 0      
  Begin      
   Rollback tran      
   Return      
  End          
      
    Delete TDAMAR_NCPR      
     Where CO_EMPR = @ISCO_EMPR       
     And    CO_UNID_CONC = @ISCO_UNID_CONC      
     And    NU_AMAR = @ISNU_AMAR      
     And    FE_AMAR = @IDFE_AMAR      
      
    If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End              
      
      
 Insert into TMREGI_ELIM (CO_EMPR, CO_TABL_ORIG, DE_TABL_ORIG,      
           CO_CLAV_TAOR, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)       
    select @ISCO_EMPR, 17, 'CABECERA APLICACI.N NCR A DOCUMENTOS PROVEEDOR',      
        RTRIM( @ISCO_EMPR )+ REPLICATE('#', 2-LEN(RTRIM(@ISCO_EMPR)))+       
        RTRIM( @ISNU_AMAR )+ REPLICATE('#', 8-LEN(RTRIM(@ISNU_AMAR))), @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE()      
 From   TCAMAR_NCPR      
 Where  CO_EMPR = @ISCO_EMPR       
     And    CO_UNID_CONC = @ISCO_UNID_CONC      
     And    NU_AMAR = @ISNU_AMAR      
     And    FE_AMAR = @IDFE_AMAR      
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
  Delete TCAMAR_NCPR      
     Where CO_EMPR = @ISCO_EMPR       
     And    CO_UNID_CONC = @ISCO_UNID_CONC      
     And    NU_AMAR = @ISNU_AMAR      
     And    FE_AMAR = @IDFE_AMAR      
       
    If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End           
      
COMMIT TRAN       
      
/*------------------------ Fin ------------------------------*/


GO
